package com.s63.appinfo.pojo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 
 * @TableName app_version
 */
public class AppVersion implements Serializable {
    /**
     * 主键id
     */
    private Long id;

    /**
     * appId（来源于：app_info表的主键id）
     */
    private Long appId;

    /**
     * 版本号
     */
    private String versionNo;

    /**
     * 版本介绍
     */
    private String versionInfo;

    /**
     * 发布状态（来源于：data_dictionary，1 不发布 2 已发布 3 预发布）
     */
    private Long publishStatus;

    /**
     * 下载链接
     */
    private String downloadLink;

    /**
     * 版本大小（单位：M）
     */
    private BigDecimal versionSize;

    /**
     * 创建者（来源于dev_user开发者信息表的用户id）
     */
    private Long createdBy;

    /**
     * 创建时间
     */
    private Date creationDate;

    /**
     * 更新者（来源于dev_user开发者信息表的用户id）
     */
    private Long modifyBy;

    /**
     * 最新更新时间
     */
    private Date modifyDate;

    /**
     * apk文件的服务器存储路径
     */
    private String apkLocPath;

    /**
     * 上传的apk文件名称
     */
    private String apkFileName;

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    public Long getId() {
        return id;
    }

    /**
     * 主键id
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * appId（来源于：app_info表的主键id）
     */
    public Long getAppId() {
        return appId;
    }

    /**
     * appId（来源于：app_info表的主键id）
     */
    public void setAppId(Long appId) {
        this.appId = appId;
    }

    /**
     * 版本号
     */
    public String getVersionNo() {
        return versionNo;
    }

    /**
     * 版本号
     */
    public void setVersionNo(String versionNo) {
        this.versionNo = versionNo;
    }

    /**
     * 版本介绍
     */
    public String getVersionInfo() {
        return versionInfo;
    }

    /**
     * 版本介绍
     */
    public void setVersionInfo(String versionInfo) {
        this.versionInfo = versionInfo;
    }

    /**
     * 发布状态（来源于：data_dictionary，1 不发布 2 已发布 3 预发布）
     */
    public Long getPublishStatus() {
        return publishStatus;
    }

    /**
     * 发布状态（来源于：data_dictionary，1 不发布 2 已发布 3 预发布）
     */
    public void setPublishStatus(Long publishStatus) {
        this.publishStatus = publishStatus;
    }

    /**
     * 下载链接
     */
    public String getDownloadLink() {
        return downloadLink;
    }

    /**
     * 下载链接
     */
    public void setDownloadLink(String downloadLink) {
        this.downloadLink = downloadLink;
    }

    /**
     * 版本大小（单位：M）
     */
    public BigDecimal getVersionSize() {
        return versionSize;
    }

    /**
     * 版本大小（单位：M）
     */
    public void setVersionSize(BigDecimal versionSize) {
        this.versionSize = versionSize;
    }

    /**
     * 创建者（来源于dev_user开发者信息表的用户id）
     */
    public Long getCreatedBy() {
        return createdBy;
    }

    /**
     * 创建者（来源于dev_user开发者信息表的用户id）
     */
    public void setCreatedBy(Long createdBy) {
        this.createdBy = createdBy;
    }

    /**
     * 创建时间
     */
    public Date getCreationDate() {
        return creationDate;
    }

    /**
     * 创建时间
     */
    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    /**
     * 更新者（来源于dev_user开发者信息表的用户id）
     */
    public Long getModifyBy() {
        return modifyBy;
    }

    /**
     * 更新者（来源于dev_user开发者信息表的用户id）
     */
    public void setModifyBy(Long modifyBy) {
        this.modifyBy = modifyBy;
    }

    /**
     * 最新更新时间
     */
    public Date getModifyDate() {
        return modifyDate;
    }

    /**
     * 最新更新时间
     */
    public void setModifyDate(Date modifyDate) {
        this.modifyDate = modifyDate;
    }

    /**
     * apk文件的服务器存储路径
     */
    public String getApkLocPath() {
        return apkLocPath;
    }

    /**
     * apk文件的服务器存储路径
     */
    public void setApkLocPath(String apkLocPath) {
        this.apkLocPath = apkLocPath;
    }

    /**
     * 上传的apk文件名称
     */
    public String getApkFileName() {
        return apkFileName;
    }

    /**
     * 上传的apk文件名称
     */
    public void setApkFileName(String apkFileName) {
        this.apkFileName = apkFileName;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        AppVersion other = (AppVersion) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getAppId() == null ? other.getAppId() == null : this.getAppId().equals(other.getAppId()))
            && (this.getVersionNo() == null ? other.getVersionNo() == null : this.getVersionNo().equals(other.getVersionNo()))
            && (this.getVersionInfo() == null ? other.getVersionInfo() == null : this.getVersionInfo().equals(other.getVersionInfo()))
            && (this.getPublishStatus() == null ? other.getPublishStatus() == null : this.getPublishStatus().equals(other.getPublishStatus()))
            && (this.getDownloadLink() == null ? other.getDownloadLink() == null : this.getDownloadLink().equals(other.getDownloadLink()))
            && (this.getVersionSize() == null ? other.getVersionSize() == null : this.getVersionSize().equals(other.getVersionSize()))
            && (this.getCreatedBy() == null ? other.getCreatedBy() == null : this.getCreatedBy().equals(other.getCreatedBy()))
            && (this.getCreationDate() == null ? other.getCreationDate() == null : this.getCreationDate().equals(other.getCreationDate()))
            && (this.getModifyBy() == null ? other.getModifyBy() == null : this.getModifyBy().equals(other.getModifyBy()))
            && (this.getModifyDate() == null ? other.getModifyDate() == null : this.getModifyDate().equals(other.getModifyDate()))
            && (this.getApkLocPath() == null ? other.getApkLocPath() == null : this.getApkLocPath().equals(other.getApkLocPath()))
            && (this.getApkFileName() == null ? other.getApkFileName() == null : this.getApkFileName().equals(other.getApkFileName()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getAppId() == null) ? 0 : getAppId().hashCode());
        result = prime * result + ((getVersionNo() == null) ? 0 : getVersionNo().hashCode());
        result = prime * result + ((getVersionInfo() == null) ? 0 : getVersionInfo().hashCode());
        result = prime * result + ((getPublishStatus() == null) ? 0 : getPublishStatus().hashCode());
        result = prime * result + ((getDownloadLink() == null) ? 0 : getDownloadLink().hashCode());
        result = prime * result + ((getVersionSize() == null) ? 0 : getVersionSize().hashCode());
        result = prime * result + ((getCreatedBy() == null) ? 0 : getCreatedBy().hashCode());
        result = prime * result + ((getCreationDate() == null) ? 0 : getCreationDate().hashCode());
        result = prime * result + ((getModifyBy() == null) ? 0 : getModifyBy().hashCode());
        result = prime * result + ((getModifyDate() == null) ? 0 : getModifyDate().hashCode());
        result = prime * result + ((getApkLocPath() == null) ? 0 : getApkLocPath().hashCode());
        result = prime * result + ((getApkFileName() == null) ? 0 : getApkFileName().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", appId=").append(appId);
        sb.append(", versionNo=").append(versionNo);
        sb.append(", versionInfo=").append(versionInfo);
        sb.append(", publishStatus=").append(publishStatus);
        sb.append(", downloadLink=").append(downloadLink);
        sb.append(", versionSize=").append(versionSize);
        sb.append(", createdBy=").append(createdBy);
        sb.append(", creationDate=").append(creationDate);
        sb.append(", modifyBy=").append(modifyBy);
        sb.append(", modifyDate=").append(modifyDate);
        sb.append(", apkLocPath=").append(apkLocPath);
        sb.append(", apkFileName=").append(apkFileName);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}